package com.animee.health;

import android.support.annotation.NonNull;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;

import java.util.List;

// 继承PagerAdapter的适配器
public class AboutAdapter extends PagerAdapter {
    // 传入数据源,有几个要滑动的图片
    List<View> viewList;

    public AboutAdapter(List<View> viewList) {
        this.viewList = viewList;
    }

    // 自动重写
    @Override
    public int getCount() {
        return Integer.MAX_VALUE;
    }
    // 返回我们要见加载几页,Integer.MAX_VALUE能保证当滑动时能连续不断的滑动下去


    @Override
    // 判断生成的view和传入的对象object是不是一个对象
    public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
        return view == object;
    }

    @NonNull
    @Override
    public Object instantiateItem(@NonNull ViewGroup container, int position) {
        // 拿到指定的viewList的view
        // 处理角标异常,Line19元素个数返回的是Integer最大值,不是viewList长度,一直向右滑动的时候
        // 下角标一直增加,但是数组长度只有5张,让角标只在0-4之间产生变化,不要变化更大,进行取余(实现无限滚动)
        View view = viewList.get(position % viewList.size());
        // 添加到页面当中容器container就是viewPaper页面
        container.addView(view);

        // 返回当前view
        return view;
    }

    @Override
    // 当视线离开当前的页面的对数据进行销毁,销毁指定位置的view
    public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
        // 销毁与Line37同理(实现无限滚动)
        View view = viewList.get(position % viewList.size());
        container.removeView(view);
    }
}
